package com.qianfeng.zw.meilishuo.fragment;


import android.graphics.Bitmap;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.jayqqaa12.abase.core.fragment.AFragment;
import com.qianfeng.zw.meilishuo.R;
import com.qianfeng.zw.meilishuo.config.AppConstants;

import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.ViewById;

/**
 * 店铺
 */
@EFragment(R.layout.fragment_hdstreet)
public class HdStreetFragment extends AFragment implements View.OnKeyListener {
    @ViewById(R.id.home_hdStreet_webview)
    WebView webView;

    @Override
    protected void init() {
        super.init();
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.setWebViewClient(new StreetWebViewClient());
        //设置返回监听
        webView.setOnKeyListener(this);
    }

    @Override
    protected void connect() {
        super.connect();
        webView.loadUrl(AppConstants.HOME_HDSTREET_URL);
    }
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {  //表示按返回键 时的操作
                webView.goBack();   //后退
                return true;    //已处理
            }
        }
        return false;
    }

    public class StreetWebViewClient extends WebViewClient {
        /**
         * 在页面加载开始时调用。
         *
         * @param view
         * @param url
         * @param favicon
         */
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        /**
         * 在加载页面资源时会调用，每一个资源（比如图片）的加载都会调用一次。
         *
         * @param view
         * @param url
         */
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
        }

        /**
         * 在点击请求的是链接是才会调用，重写此方法返回true表明点击网页里面的链接还是在当前的webview里跳转，不跳到浏览器那边。
         *
         * @param view
         * @param url
         * @return
         */
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }


        /**
         * 重写此方法可以让webview处理https请求
         *
         * @param view
         * @param event
         * @return
         */
        public boolean shouldOverrideKeyEvent(WebView view, KeyEvent event) {
            return super.shouldOverrideKeyEvent(view, event);
        }

        /**
         * 重写此方法才能够处理在浏览器中的按键事件。
         *
         * @param view
         * @param url
         */
        public void onLoadResource(WebView view, String url) {
            super.onLoadResource(view, url);
        }
    }
}
